Skip to content

List offline machines in the Tailscale panel - #9233

Open
cschaba wants to merge 1 commit into
omacom:quattrofrom
cschaba:tailscale-offline-machines
Open

List offline machines in the Tailscale panel#9233
cschaba wants to merge 1 commit into
omacom:quattrofrom
cschaba:tailscale-offline-machines

Conversation

@cschaba

@cschaba cschaba commented Aug 30, 2026

Copy link
Copy Markdown

The problem

Model.js only pushed peers with Online true into the machines list. On a tailnet where most devices are asleep the panel looks nearly empty — on mine it showed 3 rows out of 12 machines — and because the content never exceeded the panel's Style.space(560) cap, the Flickable had nothing to scroll and the list read as if it were capped at three items.

The change

Every peer is listed. Online machines come first, each group sorted alphabetically, so the ones you can act on still read first. Offline rows are dimmed and their subtitle is marked Offline.

Two behaviours stay online-only:

  • Exit nodes — routing through a machine that is down only breaks connectivity, so an offline one is never a valid choice.
  • TaildropcanSendFiles now returns false for an offline peer, so the send button hides instead of offering a transfer that cannot land.

Copy actions (IP, name, DNS name) keep working for every machine, which is most of the reason to want an offline machine in the list at all.

Tests

test/shell.d/tailscale-test.sh had three assertions encoding the online-only behaviour; they now assert the new ordering, and a new assertion covers the Online flag reaching the panel. The existing "lists only online tailnet exit nodes" assertion now genuinely exercises the exit-node guard, since the fixture's offline exit node is no longer filtered out earlier.

bash test/shell passes apart from five files that fail identically on an unmodified quattro here (config, snapper, theme-install-guards, unowned-system-paths, windows-vm-mount-boundary) and look environment-dependent.

🤖 Generated with Claude Code

The machines list only ever showed peers with Online true, so a tailnet
where most devices are asleep looked nearly empty — 3 rows out of 12 on
my own tailnet — and the panel's scrolling never came into play.

List every peer, online ones first and each group alphabetical, with the
offline rows dimmed and marked "Offline" so the ones you can act on still
read first. Exit nodes stay online-only, since routing through a machine
that is down only breaks connectivity, and Taildrop's send button now
hides for an offline peer instead of offering a transfer that cannot
land. Copy actions keep working for every machine.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants